package com.atguigu.ssyx.activity.service;


import com.atguigu.ssyx.model.activity.CouponInfo;
import com.atguigu.ssyx.model.order.CartInfo;
import com.atguigu.ssyx.vo.activity.CouponRuleVo;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 优惠券信息 服务类
 * </p>
 *
 * @author atguigu
 * @since 2025-09-17
 */
public interface CouponInfoService extends IService<CouponInfo> {
    //1.优惠劵的分页查询
    IPage<CouponInfo> selectPage(Page<CouponInfo> pagegaram);
    //3.根据id查询优惠劵
    CouponInfo getCouponInfoById(Long id);
    //4.根据优惠劵的id查询规则数据
    Map<String, Object> findCouponRuleList(Long id);
    //5.添加优惠劵的规则数据
    void saveCouponRule(CouponRuleVo couponRuleVo);
    //6.根据关键字来查询他匹配的优惠劵信息
    List<CouponInfo> findCouponByKeyword(String keyword);
    //7.根据skuid和userid查询优惠卷信息
    List<CouponInfo> findCouponInfoList(Long skuId, Long userId);
    //8.获取购物车里面可用使用优惠卷列表
    List<CouponInfo> findCartCouponInfo(List<CartInfo> cartInfoList, Long userId);
    //获取购物车对应的优惠卷
    CouponInfo findRangeSkuIdList(List<CartInfo> cartInfoList, Long couponId);
    //更新优惠卷状态
    void updateCouponInfoUseStatus(Long couponId, Long userId, Long orderId);
}
